'use strict';

/**
 * @controller 莫凡通用化组件接口
 * @description 组件化通用模块
 */

const Controller = require('egg').Controller;

class mfutil extends Controller {

  /**
   * 示例接口：GET
   * @summary 测试接口
   * @description 获取用户信息
   * @router get /dev/api/v1/test
   * @request query string *user_id 用户id 必填
   * @response 200 BasiCode 返回结果
   */
  async test() {
    const {
      ctx,
    } = this;
    try {
      // 初始化一个ctx
      const _ctx = await ctx.helper.getCtxDate(ctx.request.query, ctx.request.body);
      // 业务处理
      const retObj = await ctx.service.mfutilService.test(_ctx);
      // 返回结果
      ctx.body = JSON.stringify(retObj);
    } catch (e) {
      // 返回异常
      ctx.body = await ctx.helper.basicode(e.code || 8000, e);
    }
  }

  /**
   * 示例接口：POST
   * @summary 测试接口
   * @description POST测试接口
   * @router post /dev/api/v1/mfutil/testPost
   * @request body testRequest *body user_id:用户ID 必填
   * @response 200 BasiCode 返回结果
   */
  async testPost() {
    const {
      ctx,
    } = this;
    try {
      // 初始化一个ctx
      const _ctx = await ctx.helper.getCtxDate(ctx.request.query, ctx.request.body);
      // 业务处理
      const retObj = await ctx.service.mfutilService.testPost(_ctx);
      // 返回结果
      ctx.body = JSON.stringify(retObj);
    } catch (e) {
      // 返回异常
      ctx.body = await ctx.helper.basicode(e.code || 8000, e);
    }
  }
}

module.exports = mfutil;